package com.baitengsoft.patentapimonitor.api.service;


import com.baitengsoft.patentapimonitor.api.entity.CfgPatentIndicatorEntity;
import com.baitengsoft.patentapimonitor.api.model.CfgPatentIndicatorInfo;
import com.baitengsoft.patentapimonitor.api.model.WebIndicatorInfo;
import com.baitengsoft.patentapimonitor.api.model.param.SearchPatentIndicatorParam;
import com.baitengsoft.patentapimonitor.common.utils.PageResult;
import com.baitengsoft.patentapimonitor.common.utils.Res;

import java.math.BigDecimal;
import java.util.List;


/**
 * 指标管理服务层
 * @author Chen 2017/12/15
 */
public interface CfgPatentIndicatorService extends BaseService<CfgPatentIndicatorEntity> {

    /**
     * 获取专利指标汇总列表
     * @param searchParam
     * @return
     */
    PageResult<CfgPatentIndicatorInfo> getPatentIndicatorSum(SearchPatentIndicatorParam searchParam);

    /**
     * 根据平台id查出特定年份的下属区域的数据
     * @param param
     * @return
     */
    PageResult<CfgPatentIndicatorInfo> getPatentIndicatorList(SearchPatentIndicatorParam param);

    /**
     * 修改指标
     * @param info
     * @return
     */
    Res updatePatentIndicator(List<CfgPatentIndicatorInfo> info,Integer platformid);

    /**
     * 根据区域Id获取指定指标数值
     */
    CfgPatentIndicatorEntity getPatentIndicatorByAreaId(Integer areaId);

    /**
     * 根据平台ID和年份获取该平台人口总和
     */
    BigDecimal getPopulationByPlatAndYear(Integer platformid, Integer currentYear);

    /***
     * 判断平台是否设置指标，
     * 都为0 返回false，
     * null自动生成为0 并返回false
     */
    boolean checkHasIndicatorByPlatormId(Integer platformid);

    /**
     * 根据区域ID和年份删除数据
     */
    void deleteByAreaIdAndYearYM(Integer id, Integer currentYear);

    /**
     * 根据年份和区域ID初始化指标数据
     */
    void initIndicatorByAreaIdAndDateYM(Integer id, Integer currentYear);
}
